-- UISkillConfirm
-- Create by luohj Jan/26/2014
-- 确认提示框界面

--UISkillConfirm继承自Layer
UISkillConfirm = class("UISkillConfirm", function()
    return cc.Layer:create();
end)

----------------------------------------------------
-- @param msg        提示框的内容
-- @param okFunc     点击确认的处理函数
-- @param okArgs     okFunc所需的参数列表（当参数较多时，这里通常传入table类型） 
-- @param cancelFunc 点击取消的处理函数
-- @param cancelArgs cancelFunc所需的参数列表（当参数较多时，这里通常传入table类型） 
-- @param okTxt      ok文本显示
-- @param isDisable   是否禁用 1 -- 禁用 
function UISkillConfirm.create(msg, okFunc, okArgs, cancelFunc, cancelArgs, okTxt, isDisable)
    return UISkillConfirm.new(msg, okFunc, okArgs, cancelFunc, cancelArgs, okTxt, isDisable);
end

-- 内部函数声明
local resize;

-- 构造函数
function UISkillConfirm:ctor(msg, okFunc, okArgs, cancelFunc, cancelArgs, okTxt, isDisable)     
    -- 初始化
    local node = cc.CSLoader:createNode("layout/hero/SkillConfirm.csb");
    self:addChild(node);

    local CT = findChildByName(node, "CT");
    local BT = findChildByName(node, "BT");

    -- 设置内容
    local contentLabel = CT:getChildByName("content");
    TextStyleM.setTextStyle(contentLabel, TextStyleM.TEXT_SIZE_SMALL, TextStyleM.TEXT_COLOR_DARK_BROWN);
    contentLabel:setString(msg);

    -- 注册确认按钮点击事件
    local okBtn = CT:getChildByName("btn_ok")
    local function onOkClick(sender, eventType)
        if eventType == ccui.TouchEventType.ended then
            AudioM.playFx("button_select");    
            UIMgr.getCurrentScene():removeDialog(self);
            if type(okFunc) == 'function' then
                okFunc(okArgs);
            end
        end
    end

    TextStyleM.setTextStyle(okBtn, TextStyleM.TEXT_SIZE_MIDDLE, TextStyleM.TEXT_COLOR_BROWN_YELLOW, true);
    okBtn:addTouchEventListener(onOkClick);
    okBtn:setTitleText(okTxt);
    if isDisable == 1 then
        okBtn:setBright(false);
        okBtn:setTouchEnabled(false);
    end

    -- 注册返回按钮点击事件
    local canelBtn = BT:getChildByName("btn_back")
    local function onCancelClick(sender, eventType)
        if eventType == ccui.TouchEventType.ended then  
            AudioM.playFx("button_return");  
            UIMgr.getCurrentScene():removeDialog(self);
            if type(cancelFunc) == 'function' then
                cancelFunc(cancelArgs);
            end
        end
    end
    canelBtn:addTouchEventListener(onCancelClick); 
    TextStyleM.setTextStyle(canelBtn, TextStyleM.TEXT_SIZE_MIDDLE, TextStyleM.TEXT_COLOR_BROWN_YELLOW, true);
    canelBtn:setTitleText(getLocStr("btn_text_back"));

    -- 适配
    resize(node);
end

-- 适配
resize = function(node)
    -- bg居中显示并充满整个屏幕
    AlignM.fitToScreen(node, "bg");

    -- CT居中并缩放至合适大小
    AlignM.alignToCenter(node, "CT");

    -- BT置于底部并缩放至合适大小
    AlignM.alignToBottomCenter(node, "BT"); 
end

return UISkillConfirm;
